#!/bin/bash

## !!!! 需要制定shell为/bin/bash，否则 -n 选项不会换行
# echo -n "input your name:"
# read name
# echo "hello $name"

# echo
# echo "read with -p"
# echo "read -p \"please input you age:\" age"
# read -p "please input you age:" age
# echo "you age $age"


# read -p "Enter your name: " first last 
# echo "Checking data for $last, $first..."

# 不指定变量，read命令会将它收到的任何数据都放进 特殊环境变量REPLY中
# read -p "Enter your name: "
# echo
# echo Hello $REPLY, welcome to my program


# 用-t选项来指定一个计时器。-t选项指定了read命令等待
# 输入的秒数。当计时器过期后，read命令会返回一个非零退出状态码。
# 获取用户输入，设置超时时间为5秒
# if read -t 5 -p "Please enter your name: " name; then
#    echo "Hello $name, welcome to my script"
# else
#    echo
#    echo "Sorry, too slow! "
# fi


#本例中将-n选项和值1一起使用，
#告诉read命令在接受单个字符后退出。
#只要按下单个字符 回答后，
#read命令就会接受输入并将它传给变量，无需按回车键。
# read -n1 -p "Do you want to continue [Y/N]? " answer 
# case $answer in
# 	Y | y) echo
#            echo "fine, continue on...";;
#     N | n) echo
#            echo OK, goodbye
#            exit;;
# esac
# echo "This is the end of the script"


#-s选项可以避免在read命令中输入的数据出现在显示器上
#(实际上，数据会被显示，只是 read命令会将文本颜色设成跟背景色一样)。
#这里有个在脚本中使用-s选项的例子。
echo "login"
read -s -p "password:" pwd
echo "password: $pwd"


#也可以用read命令来读取Linux系统上文件里保存的数据
#每次调用read命令，它都 4 会从文件中读取一行文本。
#当文件中再没有内容时，read命令会退出并返回非零退出状态码。
lineNum=0
cat testfile | while read line
do
	echo "${lineNum}: ${line}"
	lineNum=$[ $lineNum + 1 ]
done



